package java2022_07_12;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class FileDemo9 {
    public static void main(String[] args)  {
//        //这个创建实例的过程，就相当于在打开文件
//        //要先打开文件，然后才能进行读写
//        InputStream inputStream = null;
//        try{
//            inputStream = new FileInputStream("./test.txt");
//            //逐个字节的方式把文件读取出来
//            while(true){
//                //每次调用read就可以读取一些数据出来。
//                //read提供了好几个版本，其中无参数版本就是一次读取一个字节。
//                //对于这个无参版本的read来说，返回值就是这次操作读取到的字节。
//                //这个结果的范围就是 0-255
//                //如果读取文件末尾(EOF，end of file),此时继续进行read,就会返回-1
//                int b = inputStream.read();
//                if(b == -1){
//                    break;
//                }
//                System.out.printf("%c",b);
//            }
//        }catch (IOException e){
//            e.printStackTrace();
//        }finally {
//            try {
//                inputStream.close();
//            } catch (IOException e) {
//                throw new RuntimeException(e);
//            }
//        }

        //java中提供try-with-resource 语法，可以很好的解决上述代码的繁琐问题,会自动进行inputStream.close()的执行
        try( InputStream inputStream = new FileInputStream("./test.txt")){
            while(true){
                int b = inputStream.read();
                if(b == -1){
                    break;
                }
                System.out.printf("%c",b);
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
